package data;

import java.util.ArrayList;

public class Data_Loader 
{
	public static final int ANDROID = 0;
	
	public static final String EDIFICE = "edifice";
	public static final String PLACE = "place";
	
	private static String[] tabType = {EDIFICE, PLACE};
	
	//villes
	
	public static final String STRAS = "Strasbourg";
	public static final String MULHOUSE = "Mulhouse";
	
	//Monuments
	public static final POI cathedrale = new POI((float)48.5816295, (float) 7.7504991, 
			"Comment se nomme la cathédrale de Strasbourg ?", 
			"La cathédrale Saint-Etienne", "La cathédrale Saint-Pierre", "La cathédrale Notre-Dame", 
			EDIFICE, "Cathédrale");
	public static final POI tns = new POI((float)48.5831480, (float) 7.7478820, 
			"Qui est l'actuel directeur du TNS ?", "Roland Piétri", "Jacques Fornier", "Julie Brochen", 
			EDIFICE, "Théâtre Nationale de Strasbourg");
	public static final POI conservatoire = new POI((float)48.5742080, (float) 7.7558650, 
			"Laquelle de ces personnes n'a pas été directeur du conservatoire de Strasbourg ?", "Fritz Munch", "Louis Martin", "François Jacob", 
			EDIFICE, "Conservatoire");
	public static final POI parlement = new POI((float)48.5975203, (float) 7.7685689, 
			"Quelle est la forme du parlement ?", "Triangulaire", "Octogonale", "Circulaire", 
			EDIFICE, "Le parlement européen");
	
	private static POI[] tabMonuments = {cathedrale, conservatoire, tns, parlement};
	
	
	//bars
	/*public static final POI mollyMalone = new POI((float)0.0, (float) 0.0, "Question", "Fail", "Fail", "OK", "bar", "Le Molly Malone");
	public static final POI exil = new POI((float)0.0, (float) 0.0, "Question", "Fail", "Fail", "OK", "bar", "L'exil");
	public static final POI berthom = new POI((float)0.0, (float) 0.0, "Question", "Fail", "Fail", "OK", "bar", "Les Berthoms");
	public static final POI brasseur = new POI((float)0.0, (float) 0.0, "Question", "Fail", "Fail", "OK", "bar", "Les brasseurs");
	*/
	
	//Gastronomie
	public static final POI cuisineChoucroute = new POI((float)48.5820797, (float) 7.7479148, 
			"Sur quelle place se trouve le restaurant \"Aux Armes\" ?", "Sur la place Kléber", "Sur la place de la République", "Sur la place Gutenberg", 
			EDIFICE, "Aux Armes");
	public static final POI kebab = new POI((float)48.5821579, (float) 7.7419603, 
			"Quel est le prix d'un Kebab dans ce restaurant ?", "3,50€", "3,80€", "4,00€", 
			EDIFICE, "Le Firat");
	public static final POI pizzeria = new POI((float)48.5809803, (float) 7.7463838, 
			"Quelle pizza pouvez-vous manger ici ?", "Une pizza aux asperges", "Une pizza végétarienne", "Une pizza au saumon", EDIFICE, "Come a Roma");
	public static final POI cuisineBaeckoffe = new POI((float)48.5807885, (float) 7.7506151, 
			"Qu'est-ce que le Grüber ne propose pas à son menu ?", 
			"Un baeckeoffe", "Une choucroute", "Des lasagnes", 
			EDIFICE, "Le Gruber");
	
		
	private static POI[] tabGastro = {cuisineChoucroute, kebab, pizzeria, cuisineBaeckoffe};
	
	
	
	//Gastronomie Mulhouse
	public static final POI cuisineChoucrouteMH = new POI((float)47.7476205, (float) 7.3372774, 
			"Quelle boisson de base peut accompagner la Choucroute ?", "De l'eau", "Du Sylvaner", "De la bière", 
			PLACE, "Pic-Vit");
	public static final POI kebabMH = new POI((float)47.7515392, (float) 7.3260414, 
			"Quel est le prix d'un Kebab dans ce restaurant ?", "3,50€", "3,80€", "4,00€", PLACE, "Bizim Kebab");
	public static final POI pizzeriaMH = new POI((float)47.7669545, (float) 7.3223898, 
			"Quelle pizza pouvez-vous manger ici ?", "Une pizza aux asperges", "Une pizza végétarienne", "Une pizza au saumon",
			PLACE, "pizza Emport'");
	public static final POI cuisineBaeckoffeMH = new POI((float)47.7467098, (float) 7.3383874, "Quel est le prix d'un baeckoffe ici ?", "8€50", "10€20", "14€50", PLACE, "Au vieux Mulhouse");
	
	private static POI[] tabGastroMH = {cuisineChoucrouteMH, kebabMH, pizzeriaMH, cuisineBaeckoffeMH};
	
	
	//Edifices Mulhouse
	public static final POI porteJeune = new POI((float)47.7495840, (float) 7.3401920, 
			"Quelle boutique n'est pas présente à la porte jeune ?", "Mezzo di Pasta", "Micromania", "Fnac", 
			EDIFICE, "Porte Jeune");
	public static final POI kinePolis = new POI((float)47.7508390, (float) 7.3358880, 
			"Combien de salles sont ouvertes aux spectateurs dans ce cinéma ?", "8", "16", "14", EDIFICE, "Kinépolis");
	public static final POI theatre = new POI((float)47.7508390, (float) 7.3358880, 
			"Ce théâtre présente un prestigieux cadre du ", "18ème siècle", "20ème siècle", "19ème siècle", EDIFICE, "Théâtre de la Sinne");
	public static final POI museeTrain = new POI((float)47.7504550, (float) 7.2943560, 
			"Combien de temps dure approximativement la visite du musée ?", "1h30", "3h", "2h", 
			EDIFICE, "Musée du train");
	public static final POI museeAuto = new POI((float)47.7602778, (float) 7.3322494, 
			"Combien de voitures sont exposées dans ce musée ?", "200", "600", "400", 
			EDIFICE, "Musée de l'automobile");
	
	private static POI[] tabEdificeMH = {porteJeune, kinePolis, theatre, museeTrain, museeAuto};
	
	private Data_Loader()
	{
		//constructeur vide
	}
	
	public static ArrayList<Parcours> getParcours(String ville)
	{
		if(ville.equals(STRAS))
			return getParcoursStrasbourg();
		else if(ville.equals(MULHOUSE))
			return getParcoursMulhouse();
		else
			return null;
	}
	
	public static ArrayList<Parcours> getParcoursStrasbourg()
	{
		ArrayList<Parcours> res = new ArrayList<Parcours>();
		
		res.add(createParcours1());
		res.add(createParcours2());
		
		return res;
	}
	
	public static ArrayList<Parcours> getParcoursMulhouse()
	{
		ArrayList<Parcours> res = new ArrayList<Parcours>();		
		
		Parcours parc = new Parcours("Parcours 1", MULHOUSE, ANDROID);
		
		UserPreference preferences = UserPreference.getInstance();		
		
		if(preferences.hasParams(PLACE))
		{
			for(POI poi : tabGastroMH)
				parc.addPOI(poi);
		}
		
		if(preferences.hasParams(EDIFICE))
		{
			for(POI poi : tabEdificeMH)
				parc.addPOI(poi);
		}				
		
		return res;
	}
	
	
	public static Parcours createParcours1()
	{
		Parcours res = new Parcours("Parcours 1", STRAS, ANDROID);
		
		UserPreference preferences = UserPreference.getInstance();
		
		if(preferences.hasParams(EDIFICE))
			createParcoursEdifices(res);
		
		if(preferences.hasParams(PLACE))
			createParcoursPlaces(res);
		
		return res;
	}
	
	
	public static Parcours createParcours2()
	{
		Parcours res = new Parcours("Parcours 2", STRAS, ANDROID);
		
		UserPreference preferences = UserPreference.getInstance();		
		
		if(preferences.hasParams(PLACE))
			createParcoursPlaces(res);
		
		if(preferences.hasParams(EDIFICE))
			createParcoursEdifices(res);
		
		return res;
	}
	
	public static Parcours createParcoursEdifices(Parcours res)
	{		
		
		for(POI poi : tabMonuments)
			res.addPOI(poi);
		
		return res;
		
	}
	
	public static Parcours createParcoursPlaces(Parcours res)
	{
		for(POI poi : tabGastro)
			res.addPOI(poi);
		
		return res;
		
	}
	
	

}
